package br.com.unioConci.consulta.vo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Formula;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;

import br.com.r2.util.tipodado.Flag;
import br.com.r2.util.tipodado.Moeda;
import br.com.unioConci.consulta.vo.filtro.FiltroConsultaVo;

@Entity
@Table(name = "VWCFRS")
@Proxy(lazy = true)
public class ConsultaConciliacaoSinteticoVo implements Serializable
{
   /**
    * 
    */
   private static final long serialVersionUID = -226155410621330848L;

   @EmbeddedId
   protected ConciliacaoSinteticoPK conciliacaoSinteticaPK;

   @Column(name = "VALOR_FINANCEIRO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorFinanceiro;

   @Column(name = "VALOR_RAZAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorRazao;

   @Formula ("(VALOR_RAZAO - VALOR_FINANCEIRO)")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda diferencaValor;

   @Formula ("(CASE WHEN VALOR_RAZAO - VALOR_FINANCEIRO = 0 THEN 'N' ELSE 'S' END)")
   @Type(type = "br.com.r2.util.tipodado.hibernate.FlagUT")
   private Flag possuiDivergencia;

   @Transient
   private FiltroConsultaVo filtro;

   public ConciliacaoSinteticoPK getConciliacaoSinteticaPK()
   {
      return conciliacaoSinteticaPK;
   }

   public void setConciliacaoSinteticaPK(
         ConciliacaoSinteticoPK conciliacaoSinteticaPK)
   {
      this.conciliacaoSinteticaPK = conciliacaoSinteticaPK;
   }

   public Moeda getValorFinanceiro()
   {
      return valorFinanceiro;
   }

   public void setValorFinanceiro(Moeda valorFinanceiro)
   {
      this.valorFinanceiro = valorFinanceiro;
   }

   public Moeda getValorRazao()
   {
      return valorRazao;
   }

   public void setValorRazao(Moeda valorRazao)
   {
      this.valorRazao = valorRazao;
   }

   public FiltroConsultaVo getFiltro()
   {
      return filtro;
   }

   public void setFiltro(FiltroConsultaVo filtro)
   {
      this.filtro = filtro;
   }

   public Moeda getDiferencaValor()
   {
      return diferencaValor;
   }

   public void setDiferencaValor(Moeda diferencaValor)
   {
      this.diferencaValor = diferencaValor;
   }

   public Flag getPossuiDivergencia()
   {
      return possuiDivergencia;
   }

   public void setPossuiDivergencia(Flag possuiDiferenca)
   {
      this.possuiDivergencia = possuiDiferenca;
   }

   
}
